//index.js
//获取应用实例
const app = getApp();
const QQMapWX = require('../../utils/qqmap-wx-jssdk.min.js');
// 实例化API核心类
var mapLocation = new QQMapWX({
  key: 'ZWHBZ-CL5KG-RI6QY-IAYDI-UT725-AIFF5' // 必填
});
Page({
  data: {
    maskShow: false,
    mobile: "",
    code: "",
    clickable: true,  // 防止重复提交
    isGetCode: true,  // 防止重复获取验证码
  },

  // 输入手机号
  fillMobile: function(e){
    app.globalData.userMobile = e.detail.value;
    this.setData({
      mobile: e.detail.value
    });
  },

  // 输入验证码
  fillCode:function(e){
    this.setData({
      code: e.detail.value
    });
  },

  // 联系客服
  dialTap: function(){
    wx.makePhoneCall({
      phoneNumber: '4000003030'
    });
  },

  // 发送验证码
  sendCode: function(){
    if(this.data.mobile == ""){
      app.showError("请填写手机号");
    } else if (this.data.mobile != "" && !(/^1[3|4|5|7|8][0-9]\d{4,8}$/.test(this.data.mobile))){
      app.showError("请填写正确的手机号手机号");
    }else{
      if(this.data.isGetCode == true){
        wx.request({
          url: app.globalData.url + '/applet/code',
          method: "POST",
          data: {
            "access_token": app.globalData.token,
            "tel": this.data.mobile
          },
          success: res => {
            if (res.data.err_code == "200") {
              app.showError("发送成功，请在5分钟内填写");
              this.setData({
                isGetCode: false
              });
              setTimeout(function () {
                this.setData({
                  isGetCode: true
                });
              }, 300 * 1000);
            } else {
              app.showError("发送失败，请重新获取");
            }
          },
          fail: res => {
            console.log(res);
            app.showError("服务器出错");
          }
        })
      }else{
        app.showError("验证码已发送，请五分钟后再次获取");
      }
    }
  },

  // 登陆
  login: function(){
    wx.showLoading({
      title: '正在登陆',
    })
    wx.request({
      url: app.globalData.url + '/applet/login',
      method: "POST",
      data:{
        "access_token": app.globalData.token,
        "tel": this.data.mobile,
        "code": this.data.code,
      },
      success: res =>{
        if (res.data.err_code == "200"){
          app.globalData.userId = res.data.data.user_id;
          this.getLocation();
          this.setData({
            clickable: false
          });
        } else if (res.data.err_code == "20006"){
          app.showError("暂无当前用户信息");
        } else if (res.data.err_code == "20010"){
          app.showError("短信验证码保存失败,请重新获取");
        } else if (res.data.err_code == "20011") {
          app.showError("短信验证码无效,请重新获取");
        } else if (res.data.err_code == "20012") {
          app.showError("短信验证码已过期,请重新获取");
        }else{
          app.showError("登陆失败");
        }
      },
      fail: res =>{
        console.log(res);
        app.showError("服务器出错");
      }
    })
  },
  

  // 跳转
  goHome: function(){
    // if(this.data.mobile == ""){
    //   app.showError("请填写手机号");
    // } else if (this.data.mobile != "" && !(/^1[3|4|5|7|8|9][0-9]\d{4,8}$/.test(this.data.mobile))) {
    //   app.showError("请填写正确的手机号手机号");
    // }else if(this.data.code == ""){
    //   app.showError("请填写验证码");
    // } else if (this.data.code != "" && !(/^[0-9]{5}$/.test(this.data.code))){
    //   app.showError("请填写正确的验证码");
    // }else{
    //   if(this.data.clickable == true){
    //     this.login();
    //   }else{
    //     app.showError("请不要重复提交");
    //   }
    // }
    this.getLocation();
  },
  
  // 获取用户信息
  getUserInfo: function (e) {
    console.log(e);
    if (e.detail.userInfo) {
      app.globalData.userInfo = e.detail.userInfo
      console.log(app.globalData.userInfo);
      this.setData({
        maskShow: false,
      });
    }
  },

  // 是否允许授权
  isAllow: function () {
    this.setData({
      maskShow: false
    })
  },

  // 定位
  getLocation: function () {
    wx.getLocation({
      type: 'gcj02',
      success: res => {
        var latitude = res.latitude
        var longitude = res.longitude
        app.globalData.latitude = latitude;
        app.globalData.longitude = longitude;
        // 坐标转位置
        mapLocation.reverseGeocoder({
          location: {
            latitude: latitude,
            longitude: longitude
          },
          success: res => {
            app.globalData.city = res.result.address_component.city;
            app.globalData.province = res.result.address_component.province;
            app.globalData.chooseCity = res.result.address_component.city;
            app.globalData.chooseProvince = res.result.address_component.province;
            wx.switchTab({
              url: '../home/home',
            });
          },
          fail: res => {
            console.log(res);
            app.showError("定位失败");
          }
        });
      }
    });
  },


  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function () {
    wx.getUserInfo({
      success: res => {
        app.globalData.userInfo = res.userInfo
      },
      fail: res => {
        this.setData({
          maskShow: true
        })
      }
    });
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
    if (res.from === 'button') {
      // 来自页面内转发按钮
      console.log(res.target)
    }
    return {
      title: '',
      path: '/page/index/index'
    }
  }
})
